package com.shaozj.online.model.entity;

import com.baomidou.mybatisplus.annotation.*;
import com.shaozj.core.base.BaseEntity;
import lombok.Data;

/**
 *  元模型（MetaModel）
 *  描述一个业务模型（例如 Employee 、ORDER 等）的元数据信息
 *  在低代码中，前端创建模型（模型名称、对应物理表名等）会形成此表中一条记录
 *  说明：
 *     - appId： 表示该模型属于哪个应用（多应、多租户场景用来隔离）
 *     - tableName： 对应物理表名（平台可根据改名字创建/维护表）
 *     - version：模型的版本号（字段变更时可递增，用于兼容历史版本）
 */
@Data
@TableName(value ="t_meta_model")
public class MetaModel extends BaseEntity  {

    /**
     * 模型主键 ID
     */
    @TableId(type = IdType.ASSIGN_ID)
    private Long id;

    /**
     * 所属应用 ID（用于应用级隔离 / 多租户场景）
     */
    private Long appId;

    /**
     * 模型名称，例如 Employee
     */
    private String  name;

    /**
     * 物理数据表名，例如： “t_employee”
     */
    private String tableName;

    /**
     * 模型版本号，字段结构发生变更时递增
     */
    private Integer version = 1;

    /**
     * 创建人ID
     */
    @TableField(fill = FieldFill.INSERT)
    private Long createUser;

    /**
     * 修改人ID
     */
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private Long updateUser;

}
